In This Topic
Programming / Color Detection / Re-compress an existing PDF using Color Detection

Re-compress an existing PDF using Color Detection

In This Topic

This sample code shows how to re-compress an existing PDF document containing various images from a scanner.

Copy Code
'We assume that GdPicture has been correctly installed and unlocked.

Dim oGdPicturePDF As New GdPicturePDF()

oGdPicturePDF.SetCompressionForBitonalImage(PdfCompression.PdfCompressionJBIG2)

oGdPicturePDF.SetCompressionForColorImage(PdfCompression.PdfCompressionJPEG) 

Dim oGdPictureImaging As New GdPictureImaging()

Dim status As GdPictureStatus = oGdPicturePDF.LoadFromFile("c:\input.pdf", True)

If status = GdPictureStatus.OK Then

    Dim PageCount As Integer = oGdPicturePDF.GetPageCount()

    For Page As Integer = 1 To PageCount

        oGdPicturePDF.SelectPage(Page)

        For Image As Integer = 1 To oGdPicturePDF.GetPageImageCount()

            Dim imageID As Integer = oGdPicturePDF.ExtractPageImage(Image)

            If oGdPicturePDF.GetStat() = GdPictureStatus.OK Then

                oGdPictureImaging.ColorDetection(imageID, True, True, True)

                If oGdPicturePDF.ReplaceImage(oGdPicturePDF.GetPageImageResName(Image - 1), imageID, False) <> GdPictureStatus.OK Then

                    MessageBox.Show("Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error)

                End If

                oGdPictureImaging.ReleaseGdPictureImage(imageID)

            Else

                MessageBox.Show("Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End If

        Next

    Next

    status = oGdPicturePDF.SaveToFile("c:\output.pdf", True)

    If status = GdPictureStatus.OK Then

        MessageBox.Show("Done!", "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Information)

    Else

        MessageBox.Show("The PDF file can't be saved. Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error)

    End If

    oGdPicturePDF.CloseDocument()

    oGdPictureImaging.Dispose()

Else

    MessageBox.Show("The PDF file can't be loaded. Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error)

End If

oGdPicturePDF.Dispose()
Copy Code
//We assume that GdPicture has been correctly installed and unlocked.

GdPicturePDF oGdPicturePDF = new GdPicturePDF();

oGdPicturePDF.SetCompressionForBitonalImage(PdfCompression.PdfCompressionJBIG2);

oGdPicturePDF.SetCompressionForColorImage(PdfCompression.PdfCompressionJPEG); 

GdPictureImaging oGdPictureImaging = new GdPictureImaging();

GdPictureStatus status = oGdPicturePDF.LoadFromFile("c:\\input.pdf", true);

if (status == GdPictureStatus.OK)

{

    int PageCount = oGdPicturePDF.GetPageCount();

    for (int Page = 1; Page <= PageCount; Page++)

    {

        oGdPicturePDF.SelectPage(Page);

        for (int Image = 1; Image <= oGdPicturePDF.GetPageImageCount(); Image++)

        {

            int imageID = oGdPicturePDF.ExtractPageImage(Image);

            if (oGdPicturePDF.GetStat() == GdPictureStatus.OK)

            {

                oGdPictureImaging.ColorDetection(imageID, true, true, true);

                if (oGdPicturePDF.ReplaceImage(oGdPicturePDF.GetPageImageResName(Image - 1), imageID, false) != GdPictureStatus.OK)

                    MessageBox.Show("Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error);

                oGdPictureImaging.ReleaseGdPictureImage(imageID);

            }

            else

                MessageBox.Show("Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error);

        }

    }

    status = oGdPicturePDF.SaveToFile("c:\\output.pdf", true);

    if (status == GdPictureStatus.OK)

        MessageBox.Show("Done!", "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Information);

    else

        MessageBox.Show("The PDF file can't be saved. Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error);

    oGdPicturePDF.CloseDocument();

    oGdPictureImaging.Dispose();

}

else

    MessageBox.Show("The PDF file can't be loaded. Error: " + status.ToString(), "Color Detection Example", MessageBoxButtons.OK, MessageBoxIcon.Error);

oGdPicturePDF.Dispose();